package fr.thelem.gestiondemandesthelem.web.dto;

import java.util.Date;

import fr.thelem.gestiondemandesthelem.service.IAppliService;

public class InitializeTestBD {
    private IAppliService appliService;

    /**
     * Accesseur de appliService
     * 
     * @return le appliService
     */
    public IAppliService getAppliService() {
        return appliService;
    }

    /**
     * Affectation de appliService
     * 
     * @param appliService appliService à affecter
     */
    public void setAppliService(IAppliService appliService) {
        this.appliService = appliService;
    }

    public void init() {
        if (appliService.recupererTypesDemande().size() == 0) {
            int id1 = appliService.ajouterTypeDemande("ajout/modification/suppression d'un profil à une application");
            int id2 = appliService.ajouterTypeDemande("chaîne de batchs");

            int idd1 = appliService.ajouterCategorie(id1, "ajout_modif_profil");
            int idd2 = appliService.ajouterCategorie(id2, "Financier");
            int idd3 = appliService.ajouterCategorie(id2, "Pilotage");
            int idd4 = appliService.ajouterCategorie(id2, "Production");
            int idd5 = appliService.ajouterCategorie(id2, "Règlements");
            int idd6 = appliService.ajouterCategorie(id2, "Autre");

            int iddd1 = appliService.ajouterSousCategorie(idd1, "ajout_modif_profil");
            int iddd2 = appliService.ajouterSousCategorie(idd2, "Contentieux/Recouvrement");
            int iddd3 = appliService.ajouterSousCategorie(idd2, "Encaissements/Décaissements");
            int iddd4 = appliService.ajouterSousCategorie(idd2, "Prélèvements");
            int iddd5 = appliService.ajouterSousCategorie(idd2, "Solde du compte apporteur");

            int idddd1 = appliService.ajouterCDDemande(id1, iddd1, "Ajout d'un profil");
            appliService.ajouterCDDemande(id1, iddd1, "Modification d'un profil");
            appliService.ajouterCDDemande(id1, iddd1, "Suppression d'un profil");

            int idddd2 = appliService.ajouterCDDemande(id2, iddd2, "Recouvrement d'un coface");
            appliService.ajouterCDDemande(id2, iddd2, "Annulation de primes en masse");
            appliService.ajouterCDDemande(id2, iddd2, "Courrier de rejet");
            appliService.ajouterCDDemande(id2, iddd2, "Dernier Avis");

            appliService.ajouterAdministrateur("admin", new Date(), new Date());

            int l1 = appliService.ajouterCDParametreDemande(idddd1, "Application", true, "select", null, "");
            appliService.ajouterCDParametreDemande(idddd1, "Nom du profil", true, "input", null, "");
            appliService
                    .ajouterCDParametreDemande(
                            idddd1,
                            "Type du profil",
                            true,
                            "input",
                            "Pour mantis, MOA recetteur, recetteur DSIMG ou developpeur. Pour Testlink, Rédacateur ou admin projet. Pour RIO, all_user, autre profil dans http://projetrio/Fictifs_RIO.htm",
                            "");

            int l2 = appliService.ajouterCDParametreDemande(idddd2, "Environnement", true, "select", null, "");
            appliService.ajouterCDParametreDemande(idddd2, "Date traitement", true, "date", null, "");
            appliService.ajouterCDParametreDemande(idddd2, "date_max", true, "date", null, "");
            appliService.ajouterCDParametreDemande(idddd2, "cntrct_ls", true, "input", null, "");
            appliService.ajouterCDParametreDemande(idddd2, "lst_app", true, "input", null, "");

            int pd1 = appliService.ajouterCDPointControle(idddd2, "point1", "Case à cocher");
            int pd2 = appliService.ajouterCDPointControle(idddd2, "point2", "Case à cocher");
            int pd3 = appliService.ajouterCDPointControle(idddd2, "point3", "Case à cocher");
            int pd4 = appliService.ajouterCDPointControle(idddd2, "point4", "Case à cocher");
            int pd5 = appliService.ajouterCDPointControle(idddd2, "point5", "Case à cocher");

            appliService.ajouterSelectionCDPointControle(idddd1, pd1);
            appliService.ajouterSelectionCDPointControle(idddd1, pd2);
            appliService.ajouterSelectionCDPointControle(idddd1, pd3);
            appliService.ajouterSelectionCDPointControle(idddd1, pd4);
            appliService.ajouterSelectionCDPointControle(idddd1, pd5);

            appliService.ajouterCDParametreDemandeValeurs(l1, "Mantis");
            appliService.ajouterCDParametreDemandeValeurs(l1, "Testlink");
            appliService.ajouterCDParametreDemandeValeurs(l1, "RIO");
            appliService.ajouterCDParametreDemandeValeurs(l1, "Sourceo");

            appliService.ajouterCDParametreDemandeValeurs(l2, "T1AI4");
            appliService.ajouterCDParametreDemandeValeurs(l2, "T2AI4");
            appliService.ajouterCDParametreDemandeValeurs(l2, "T3AI4");

            appliService.ajouterEtat("Annulée");
            appliService.ajouterEtat("Ouverte");
            appliService.ajouterEtat("En attente");
            appliService.ajouterEtat("Invalidée");
            appliService.ajouterEtat("En cours de traitement");
            appliService.ajouterEtat("Ré-ouverte");
            appliService.ajouterEtat("Close");

        }
    }
}
